package itheima01;

import utils.C3P0Util;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

/*
    JDBC完成转账功能(没有进行手动事务管理,采用mysql默认事务处理方式: 一条sql,一个事务,每条sql内部自动开启事务,执行完毕,自动提交事务)
    场景: tom 欠 jerry 1000元  使用2条update语句
        1.tom-1000
        2.jerry+1000

    步骤:
        1.获取连接Connection对象
        2.Connection对象获取执行sql语句的Statement对象
        3.定义2条sql语句(2条update语句:扣款,收款)
        4.Statement对象执行sql语句,获取结果
        5.处理结果
        6.关闭资源
 */
public class Demo01Account {
    public static void main(String[] args) throws SQLException {
        //1.获取连接Connection对象
        Connection con = C3P0Util.getConnection();

        //2.Connection对象获取执行sql语句的Statement对象
        Statement stmt = con.createStatement();

        //3.定义2条sql语句(2条update语句:扣款,收款)
        String tomSql = "update account set money=money-1000 where name='tom'";
        String jerrySql = "update account set money=money+1000 where name='jerry'";

        //4.Statement对象执行sql语句,获取结果
        int tomResult = stmt.executeUpdate(tomSql);
        //5.处理结果
        if(tomResult>0) {
            System.out.println("tom账户成功扣款1000元~~~");
        } else {
            System.out.println("tom账户扣款1000元失败~~~");
        }
        System.out.println(1/0);//产生异常

        int jerryResult = stmt.executeUpdate(jerrySql);
        if(jerryResult>0) {
            System.out.println("jerry账户收款1000元成功~~~");
        } else {
            System.out.println("jerry账户收款1000元失败~~~");
        }

        //6.关闭资源
        C3P0Util.release(con,stmt,null);
    }
}
